package com.ruoyi.delivery.service;

import com.ruoyi.delivery.domain.DelDeliveryOrderBatch;

import java.util.List;

public interface IDelDeliveryOrderService {

    /**
     * 根据条件分页查询配送单信息
     *
     * @param logisticId    物流商编号
     * @param deliveryId    配送单号
     * @param origin        发源地
     * @param state         状态
     * @param startDate     创建时间开始范围
     * @param endDate       创建时间结束范围
     * @param vehicleNumber 车辆编码
     * @param deliveryType  配送单类型
     * @param offset        分页偏移量
     * @param pageSize      分页大小
     * @return 配送单信息列表
     */
    List<DelDeliveryOrderBatch> getDeliveryOrders(String logisticId, String deliveryId, String origin, String state,
                                                  String startDate, String endDate, String vehicleNumber, String deliveryType,
                                                  int offset, int pageSize);

    /**
     * 获取配送单总记录数
     *
     * @param logisticId    物流商编号
     * @param deliveryId    配送单号
     * @param origin        发源地
     * @param state         状态
     * @param startDate     创建时间开始范围
     * @param endDate       创建时间结束范围
     * @param vehicleNumber 车辆编码
     * @param deliveryType  配送单类型
     * @return 总记录数
     */
    int getDeliveryOrderCount(String logisticId, String deliveryId, String origin, String state,
                              String startDate, String endDate, String vehicleNumber, String deliveryType);


    /**
     * 更新配送单信息
     *
     * @param deliveryOrder 配送单信息对象
     * @return 更新影响的行数
     */
    int updateDeliveryOrderInfo(DelDeliveryOrderBatch deliveryOrder);

    /**
     * 删除单个配送单
     *
     * @param deliveryId 配送单号
     * @return 删除影响的行数
     */
    int deleteDeliveryOrder(String deliveryId);

    /**
     * 新增配送单信息
     *
     * @param deliveryOrder 配送单信息对象
     * @return 插入影响的行数
     */
    int insertDeliveryOrder(DelDeliveryOrderBatch deliveryOrder);


}
